;;Suppose the function pos+ takes a list and
;;returns a list of each element plus its
;;position
;;> (pos+ '(7 5 1 4))
;;(7 6 3 7)
;;Define this function using 
;;(a) recursion
;;(b) iteration
;;(c) mapcar


;;(a)
(defun a-pos+ (lst)
  (let ((lst-cp (copy-list lst))
	(n 0))
    (aaa lst-cp n)))


(defun recursion-pos+ (lst n)
  (if (null lst)
      nil
      (progn
	(setf (car lst) (+ (car lst) n))
	(recursion-pos+ (cdr lst) (+ n 1))))
  lst)

;;(b)
(defun b-pos+ (lst)
  (let ((lst-cp (copy-list lst))
	(n 0))
    (dolist (obj lst-cp)
      (setf obj (+ obj n))
      (setf n (+ n 1)))
    lst-cp))

;;(c)




	    



  


  
